module fre_div# (
  parameter NUM_DIV  = 10  // 控制分频的参数
) (
    input wire  clk    ,   // 输入时钟，设频率为f
    input wire  rst_n  ,   // 异步复位，低电平有效
    output reg  clk_div    // 分频后的时钟，频率为f/NUM_DIV
);

parameter DW = $clog2(NUM_DIV);

reg    [DW-1:0] cnt;

always @(posedge clk or negedge rst_n)
    if(!rst_n) begin
        cnt     <= {DW{1'b0}};
        clk_div <= 1'b0;
    end
    else if(cnt == NUM_DIV-1) begin
        cnt     <= {DW{1'b0}};
        clk_div <= 1'b1;
    end
    else begin
        cnt     <= cnt + 1'b1;
        clk_div <= 1'b0;
    end
endmodule